<?php

require_once(BaseConfig::LoadClass('objeto_base.class.php'    ));
require_once(BaseConfig::LoadClass('filtro.class.php'         ));
require_once(BaseConfig::LoadClass('abc.class.php'            ));
require_once(BaseConfig::LoadClass('pagina.class.php'         ));
require_once(BaseConfig::LoadClass('pagina_catalogo.class.php'));

class Categoria extends ObjetoBase {
  var $intIdCategoria;
  var $strNombre     ;
  var $strDescripcion;
  var $imgThumbnail  ;
  var $imgBanner     ;
  
  function Categoria($intIdCategoria = 0) {
    $arrMapaDatos = Array();
    $arrMapaDatos['id_categoria'] = Array('NombreVariable' => 'intIdCategoria', 'TipoVariable' => 'I');
    $arrMapaDatos['nombre'      ] = Array('NombreVariable' => 'strNombre'     , 'TipoVariable' => 'S');
    $arrMapaDatos['descripcion' ] = Array('NombreVariable' => 'strDescripcion', 'TipoVariable' => 'S');
    $arrMapaDatos['thumbnail'   ] = Array('NombreVariable' => 'imgThumbnail'  , 'TipoVariable' => 'S');
    $arrMapaDatos['banner'      ] = Array('NombreVariable' => 'imgBanner'     , 'TipoVariable' => 'S');
    
    $this->__ArmarDatosPrivados('categorias', $arrMapaDatos, 'id_categoria');
    $this->SeleccionarPorIndice($intIdCategoria);
  }
}

class FiltroCategoria extends Filtro {
  function FiltroCategoria() {
    $arrProceso["nombre"] = "Nombre";
    
    parent::CrearFiltro("categorias", "id_categoria", $arrProceso, "Busqueda", "", "", "Categoria");
  }
}

class ABC_Categoria extends ABC_Base {
  function ABC_Categoria() {
    $strClaseBase     = "Categoria"      ;
    $strClaseFiltro   = "FiltroCategoria";
    $strCampoMostrar  = "nombre"         ;
    $strOpcionListado = "abc_categoria"  ;
    $strOpcionGuardar = "abc_categoria"  ;

    $arrNombresColumnas = array();
    $arrNombresColumnas["nombre"     ] = "Nombre"     ;
    $arrNombresColumnas["descripcion"] = "Descripcion";
    $arrNombresColumnas["thumbnail"  ] = "Thumbnail"  ;
    $arrNombresColumnas["banner"     ] = "Banner"     ;

    $arrReferencias = array();
    $arrReferencias["descripcion"]["tipos"] = "T";
    $arrReferencias["thumbnail"  ]["tipos"] = "E64x64"  ;
    $arrReferencias["banner"     ]["tipos"] = "E500x100";
    
    $this->Inicializar($strClaseBase, $arrNombresColumnas, $strOpcionListado, $strOpcionGuardar, $strCampoMostrar, $strClaseFiltro, $arrReferencias);
  }
}

class PagCatalogo extends PaginaCatalogo {
  function PagCatalogo() {
    parent::PaginaCatalogo();
    $this->strNombreTabla = "categorias"  ;
    $this->strIndiceProd  = "id_categoria";
    $this->strNombreProd  = "nombre"      ;
  }
  
  static function GetOptionArray() {
    $arrOpciones["categorias"] = "Categorias";
    
    return $arrOpciones;
  }
  
  function __ItemListaDesplegada($arrInfoItem) {
    $strRes  = "";
    /*
    $strRes .= "<div>";
    $strRes .= "<img src='{$arrInfoItem["thumbnail"]}' align='middle' />";
    $strRes .= "<span style='font-size:15px;font-weight: bold;'>{$arrInfoItem[$this->strNombreProd]}</span>";
    $strRes .= "</div>";
    */
    $strRes .= "<center>";
    $strRes .= "<img src='{$arrInfoItem["banner"]}' align='middle' />";
    $strRes .= "<h2>{$arrInfoItem[$this->strNombreProd]}</h2>";
    $strRes .= "</center>";
    
    return $strRes;
  }
  
  function DoRenderOption($strOpcion = "") {
    global $bolGDebug;
    $oConfig = new Config();
    switch($strOpcion) {
      case "categorias":
        $strPagina = $this->__ListaDesplegada(1);
        break;
      default:
        if($bolGDebug) {
          $strPagina = __CLASS__ . " no puede renderear la opcion $strOpcion";
        } else {
          $strPagina = "";
        }
        break;
    }
    
    return $strPagina;
  }
}

Pagina::__RegisterPage('PagCatalogo');

?>